home *** CD-ROM | disk | FTP | other *** search
/ Aminet 40 / Aminet 40 (2000)(Schatztruhe)[!][Dec 2000].iso / Aminet / dev / gui / MultiDesktop.lha / MultiDesktop / fmt.c < prev    next >
Encoding:
C/C++ Source or Header  |  1997-03-27  |  1.7 KB  |  92 lines

  1. #include <exec/types.h>
  2. #include <libraries/locale.h>
  3. #include <utility/hooks.h>
  4.  
  5. APTR               MultiDesktopBase;
  6. struct LocaleBase *LocaleBase;
  7. struct Locale     *Locale;
  8.  
  9. /* ---- Hook-Zeichenkopierroutine */
  10. ULONG CopyProc(hook,obj,msg)
  11.  struct Hook *hook;
  12.  ULONG        obj;
  13.  ULONG        msg;
  14. {
  15.  UBYTE *buffer;
  16.  
  17.  buffer=hook->h_Data;
  18.  buffer[0]=(UBYTE)msg;
  19.  hook->h_Data=(ULONG)buffer+1L;
  20. }
  21.  
  22. /* ---- String-Formatierung */
  23. void LocaleSFormat(buffer,formatString,args)
  24.  UBYTE *buffer;
  25.  UBYTE *formatString;
  26.  ULONG *args;
  27. {
  28.  struct Hook hook;
  29.  
  30.  if(Locale!=NULL)
  31.   {
  32.    InitHook(&hook,CopyProc,buffer);
  33.    FormatString(Locale,formatString,args,&hook);
  34.   }
  35.  else
  36.    strcpy(buffer,"«No Locale V38!»");
  37. }
  38.  
  39. /* ---- Datums-Formatierung */
  40. void LocaleDFormat(buffer,formatString,date)
  41.  UBYTE            *buffer;
  42.  UBYTE            *formatString;
  43.  struct DateStamp *date;
  44. {
  45.  struct Hook hook;
  46.  
  47.  if(Locale!=NULL)
  48.   {
  49.    InitHook(&hook,CopyProc,buffer);
  50.    FormatDate(Locale,formatString,date,&hook);
  51.   }
  52.  else
  53.    strcpy(buffer,"«No Locale V38»");
  54. }
  55.  
  56. void main()
  57. {
  58.  ULONG array[5];
  59.  UBYTE str[512];
  60.  struct DateStamp ds;
  61.  
  62.  DateStamp(&ds);
  63.  MultiDesktopBase=OpenLibrary("multidesktop.library",0L);
  64.  if(MultiDesktopBase!=NULL) {
  65.  LocaleBase=OpenLibrary("locale.library",38);
  66.  if(LocaleBase)
  67.   {
  68.    Locale=OpenLocale(NULL);
  69.    if(Locale)
  70.     {
  71.      puts("Start...");
  72.  
  73.  
  74.      array[0]=12345678;
  75.      array[1]=87654321;
  76.      array[2]=7466;
  77.      array[3]=226433;
  78.      LocaleSFormat(&str,"Test %lD - %lD - %lD - %lD\n",&array);
  79.      printf(">> %s\n",&str);
  80.  
  81.      LocaleDFormat(&str,"%d %m %Y\n",&ds);
  82.      printf(">> %s\n",&str);
  83.  
  84.      puts("Ende.");
  85.      CloseLocale(Locale);
  86.     }
  87.    CloseLibrary(LocaleBase);
  88.   }
  89.  CloseLibrary(MultiDesktopBase); }
  90. }
  91.  
  92.